#include<iostream>
#include<memory>
#include"Dict.hpp"//翻译的功能
#include"UdpServer.hpp"//网络通信的功能

std::string defaulthandler(const std::string& message)
{
    std::string hello="hello,";
    hello+=message;
    return hello;
}

//1.翻译系统，字符串当成英文单词，把英文单词翻译成汉语
//2.基于文件来做



//启动服务器
// ./udpserver 127.0.0.1 8888
int main(int argc, char* argv[])
{
    //if(argc!=3)
    if(argc!=2)
    {
        //如果我们的命令行参数的个数不足3个的话，那么我们就得提醒下用户输入ip和端口
        std::cerr<<"Usage: "<<argv[0]<<"port"<<std::endl;
        return 1;
    }
    //string ip=argv[1];//ip信息
    uint16_t port=std::stoi(argv[1]);//将字符串转换为整数---端口信息

    Enable_Console_Log_Strategy(); // 开启控制台日志策略

    //1.先创建一个字典对象，对象提供翻译功能
    Dict dict;
    dict.LoadDict(); // 加载字典文件

    //2.创建一个网络服务器对象，提供通信功能

    //构建一个服务器
    //将回调函数传进去
    std::unique_ptr<UdpServer> usvr=std::make_unique<UdpServer>(port,[&dict](const std::string&word,InetAddr& cli)->std::string{
        return dict.Translate(word,cli);
    });//创建服务器的时候将ip和端口传过去
    usvr->Init();//服务器初始化
    usvr->Start();//服务器启动
    return 0;
} 